

# 列表

"""
1. 概念 ： 是一个可以存放不同数据类型的序列 ，存放的数据是有顺序的 ，存放在里面的元素是可以修改的。、
2. 定义(创建) ：
    变量名 = [] or list()
    变量名 = [obj1,obj2]

3. 说明：
    (1) . 存放在列表中的元素是有顺序的 ，可以通过下标(索引)获取出列表中的元素 。
    (2) . 列表中的元素可以存放任意数据类型 ，没有长度限制 。
    (3).  列表中的元素可以进行增，删，修改，查询 。
    (4). 列表中的元素是可修改的，也叫可变化对象 。
"""

# 1. 列表定义
alst = []
blst = list()
clst = ['hello wrold',2,3.2,True,None]
print(alst)
print(blst)
print(clst)

# 2. 获取其中的一个元素，通过索引lst[index]
print("通过索引获取第3个元素:",clst[2])       # 若索引超出列表的长度 ，会报IndexError: list index out of range

# 2.1 使用for循环进行查询元素
for x in clst:
    print(x)

# 3. 修改 ，通过索引修改
clst[2] = 11
print(clst)

# 列表中支持的方法
"""
list.index(obj)         : 从列表中找出某个元素的位置
list.count(obj)         : 从列表中查找出某个元素出现的次数          
list.insert(index,obj)  : 往列表中某个位置插入一个元素            **
list.append(obj)        : 向列表中插入一个元素                **
list.extend(seq)        : 向该俩表中插入另外一个序列中的数          **
list.pop(index)              : 删除对应索引的元素，若不传，就删除最后一个        **
list.clear()            : 删除所有元素
list.remove(obj)        : 删除列表中的某个元素
list.reverse()          : 列表翻转                          **
list.sort()             ：列表排序                           **
list.copy()             : 列表的拷贝
"""
print("=======================================")
dlst = ['java','php','c','c++','.net','ruby','go','python','c']
print("查找python所在的位置:",dlst.index('python'))
print("查找c在列表中出现的次数",dlst.count('c'))

print("向列表的第2个位置插入node")
dlst.insert(1,'node')
print(dlst)

print("向列表中插入一个元素，javascript")
dlst.append('javascript')
print(dlst)

print("将clst中的元素追加到dlst中")
dlst.extend(clst)
print(dlst)

print("删除最后一个元素")
dlst.pop()
print(dlst)

print("删除列表中的某个元素")
dlst.remove('.net')
print(dlst)


# 把列表进行翻转
dlst.reverse()
print(dlst)

# 把列表进行排序
# dlst.sort()
# print(dlst)

# 列表赋值
elst = dlst.copy()
print(elst)